One widespread method of capturing and/or displaying images is through the use of pixel-based image capture and/or display. As electronic imaging resolution has increased along with the increased demand of “real time” video display, the demands for quick and efficient processing of video image data continues to increase.
In image processing, pixels are generally represented by pixel data elements, commonly referred to as pels, that are often byte sized. For example, a pel may be defined by eight bits of data that represents one byte of data in a particular image display application.
Performing a comparative calculation of differences between pels is used in a variety of video processing algorithms. Generally these operations are done to rapidly compare one set of pels to another. For example, such a comparison can form a base image correlation operation in many motion search algorithms.
In such correlations, it is desirable to obtain a calculation of the differences between set of pels of a reference frame with similar sized sets of pels of a previous or subsequent frame as a search frame. It is common to make searches of a block of pels of a current frame as the reference frame for a “best matching” block of pels in an immediately preceding frame as the search frame.
One comparative calculation technique employed in such searching is known as the sum of the absolute differences (SAD). In a conventional SAD comparison operation, pel data of a search block of reference frame pels is compared with pel data of similarly sized blocks of search frame pels on an individual pel basis by summing the absolute value of the differences of corresponding individual pels from each respective block. Generally the block in the search frame that has the lowest SAD comparison value is selected as the “best matching” block and a motion vector is assigned to the search block based on the relative frame locations of the search block and the selected “best matching” block.